package iso3.pt.action;

import iso3.pt.dao.PtDAO;
import iso3.pt.model.Alumno;
import iso3.pt.model.Asignatura;
import iso3.pt.model.Evaluacion;

import java.util.Map;
import java.util.Set;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LecturerMarking extends ActionSupport {

	private Alumno alumno;
    private Asignatura subject;
	private int dni;
	private String username = null;
	private int subjectId;
	private Asignatura asignatura;
	private String concepto;
	private float nota;
	private Set<Evaluacion> evaluaciones;
	
	public Set<Evaluacion> getEvaluaciones()
	{
		return evaluaciones;
	}
	
	public void setEvaluaciones(Set<Evaluacion> x)
	{
		this.evaluaciones=x;
	}
	
	
	public String getConcepto()
	{
		return concepto;
	}
	
	public void setConcepto(String x)
	{
		this.concepto=x;
	}
	
	public float getNota()
	{
		return nota;
	}
	
	public void setNota(float x)
	{
		this.nota=x;
	}


	public int getDni()
	{
		return dni;
	}
	
	public void setDni(int x)
	{
		this.dni=x;
	}
	public void setAlumno(Alumno alumno)
	{
		this.alumno = alumno;
	}
	
	public Alumno getAlumno()
	{
		return alumno;
	}

	public int getSubjectId()
	{
		return subjectId;
	}
	
	public void setSubjectId(int id)
	{
		subjectId = id;
	}
	
	public void setAsignatura(Asignatura asignatura)
	{
		this.asignatura = asignatura;
	}
	
	public Asignatura getAsignatura()
	{
		return asignatura;
	}
	
	
	public String listsubjectStudents()
	{
		
		// No esta bien, hay que devolver los datos del alumno (DNI, Nombre, Telefono) a traves del parametro que
		// recibimos del jsp y usando get(dni). Por otro lado hay que mostrar datos de la asigantura con getAsignatura(id), probablemente del mismo modo
		
		Map session = ActionContext.getContext().getSession();
		PtDAO ptdao = PtDAO.getInstance();
		setAsignatura(ptdao.getAsignatura(getSubjectId()));
		setAlumno(ptdao.getAlumno(getDni()));
		
		return "listsubjectStudents";
		
	}
	
	public String addGrade()
	{
		Map session = ActionContext.getContext().getSession();
		PtDAO ptdao = PtDAO.getInstance();
		setAsignatura(ptdao.getAsignatura(getSubjectId()));
		setAlumno(ptdao.getAlumno(getDni()));
		
		try
		{
				
			if (getConcepto().equals("") || getConcepto() == null || getNota() < 0 || getNota() > 10)
				return "gradeError";
			
			else
			{
				ptdao.addEvaluacion(getConcepto(), getNota(), getSubjectId(), getDni());
	
					setEvaluaciones(ptdao.getEvaluaciones(getSubjectId(), getDni()));
			
					return "success";
			}
		}
		
		catch (NumberFormatException e)
		{
				return "gradeError";
		}
		
		
	}
	

}
